#ifndef SYNTAX_TREE
#define SYNTAX_TREE

#include "symbolTable.h"


struct TreeNode {
    char *name;
    t_tipos tipo;
    union {
		int inteiro;
		float real;
		char caracter;
		char *texto;
		int *outros;
	} value;
	int child_counter;
    struct TreeNode* parent;
    struct TreeNode* children;
    struct TreeNode* sibling;
};

struct TreeNode *tree_node_new(const char *name, int tipo);

void tree_node_add_child(struct TreeNode *, struct TreeNode *);
void tree_node_add_sibling(struct TreeNode *, struct TreeNode *);


#endif // SYNTAX_TREE
